assume cs:codesg

datasg segment
   db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends

codesg segment
start:
   mov ax,datasg
   mov ds,ax
   mov si,0
   call letterc
   
   mov ax,4c00h
   int 21h
   
letterc:
   push ax
   push si
   fun_start:
   mov al,ds:[si]
   cmp al,0
   je return

   cmp al,'a'
   jb continue

   cmp al,'z'
   ja continue

   add al,11011111b
   mov ds:[si],al

   continue:
   inc si
   jmp short fun_start


   
   return:
   pop si
   pop ax
   ret
codesg ends
end start
